36bf1325592d13e6821a899bafac770448014792,src/main/org/deidentifier/arx/metric/v2/MetricSDNMPublisherPayout.java,MetricSDNMPublisherPayout,getLowerBoundInternal,#Transformation#HashGroupify#,235

Before Change


        while (entry != null) {
            if (entry.count > 0) {
                double informationLoss = this.getEntropyBasedInformationLoss(transformation, entry);
                bound +=  entry.count * modelRisk.getExpectedPublisherPayout(informationLoss, 0d);
            }
            entry = entry.nextOrdered;
        }
        
        // Invert
        bound = this.getNumTuples() * this.config.getPublisherBenefit() - bound;
        
        // Return
        return new ILSingleDimensional(bound);

After Change


        // Compute
        double bound = 0;
        double gFactor = super.getGeneralizationFactor();
        double maxPayout = this.config.getPublisherBenefit();
        HashGroupifyEntry entry = groupify.getFirstEquivalenceClass();
        while (entry != null) {
            if (entry.count > 0) {
                double informationLoss = this.getEntropyBasedInformationLoss(transformation, entry);
                double boundPayout = modelRisk.getExpectedPublisherPayout(informationLoss, 0d);
                bound += gFactor * entry.count * (maxPayout - boundPayout);
            }
            entry = entry.nextOrdered;
        }